﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace UeyesAIS.Interface
{
    /// <summary>
    /// 执行光学环境
    /// </summary>
    /// <typeparam name="T">基本参数类型</typeparam>
    public interface IStrategy<T1, T2, T3> where T3 : class
    {
        Dictionary<string, bool> DitUseVirtual { get; set; }
        IDeviceService<T1, T2> DeviceSvr { get; }
        /// <summary>
        /// 项任务开始前
        /// </summary>
        bool ItemTaskBefore(T3 param);

        /// <summary>
        /// 项任务结束
        /// </summary>
        /// <param name="param"></param>
        void ItemTaskFinished(T3 param);

        /// <summary>
        /// 任务开始
        /// </summary>
        /// <param name="id">产品ID</param>
        void ProcessStart(string id);
        /// <summary>
        /// 任务结束
        /// </summary>
        void ProcessFinished();
        /// <summary>
        /// 电测准备
        /// </summary>
        /// <returns></returns>
        bool ElectricReady();
    }
}
